﻿using System;
using System.Collections.Generic;

using Job.Core.Module;

namespace Job.ManageMember
{
    /// <summary>
    /// Member 数据仓储接口。
    /// </summary>
    public interface IMemberRepository
    {

        #region Role

        /// <summary>
        /// 添加Role。
        /// </summary>
        bool CreateRole(Role role);

        /// <summary>
        /// 更新Role。
        /// </summary>
        bool UpdateRole(Role role);

        /// <summary>
        /// 删除Role。
        /// </summary>
        bool DeleteRole(Role role);

        /// <summary>
        /// 获得Role实例。
        /// </summary>
        Role GetRole(Int32 id);

        /// <summary>
        /// 返回Role列表。
        /// </summary>
        IEnumerable<Role> GetRoles();

        #endregion

        #region User

        /// <summary>
        /// 添加User。
        /// </summary>
        bool CreateUser(User user);

        /// <summary>
        /// 更新User。
        /// </summary>
        bool UpdateUser(User user);

        /// <summary>
        /// 删除User。
        /// </summary>
        bool DeleteUser(User user);

        /// <summary>
        /// 获得User实例。
        /// </summary>
        User GetUser(Int32 id);

        /// <summary>
        /// 获得User实例。
        /// </summary>
        User GetUser(string name);

        /// <summary>
        /// 返回User列表。
        /// </summary>
        IEnumerable<User> GetUsers();

        /// <summary>
        /// 获取分页 User 列表。
        /// </summary>
        IEnumerable<User> GetUsers(int pageIndex, int pageSize, out int count);

        #endregion

    }
}
